/**
 * Created by L.jp
 * Description:
 * User: 86189
 * Date: 2022-09-15
 * Time: 21:37
 */
public class Test {
    public static void main (String[] args) {
        //静态初始化:除了用new关键字来产生数组以外，还可以直接在定义数组的同时就为数组元素分配空间并赋值。
         int[][] arr={{1,2,3},{4,5,6},{7,8,9}};
        //int[][] arr=new int[][] {{1,2,3},{4,5,6},{7,8,9}};
    
        //动态初始化：数组定义与为数组元素分配空间并赋值的操作分开进行。
//        int[][] arr = new int[3][];
//        arr[0] = new int[]{1 , 2 , 3};
//        arr[1]=new int[]{4,5,6};
//        arr[2]=new int[]{7,8,9};
        
        //默认初始化
        //数组是引用类型，它的元素相当于类的实例变量，因此数组一经分配空间，其中的每个元素也被按照实例变量同样的方式被隐式初始化。
        
        //遍历二维数组的四种方式
        //1.外层普通for循环+内层普通for循环
        for(int i = 0; i < arr.length; i++){
            for(int j=0;j<arr[i].length; j++){
                System.out.print(arr[i][j]+"\t");
            }
            System.out.println();
        }
        System.out.println("==============");
        
        //2.外层普通for+内层增强for
        for(int i = 0; i < arr.length; i++){
            for(int num:arr[i]){
                System.out.print(num+"\t");
            }
            System.out.println();
        }
        System.out.println("==============");
        
        //3.外层增强for+内层普通for
        for(int[] a:arr){
            for(int i = 0; i < a.length; i++){
                System.out.print(a[i] + "\t");
            }
            System.out.println();
        }
        System.out.println("==============");
        
        //4.外层增强for+内层增强for
        for(int[] a:arr){
            for(int num:a){
                System.out.print(num+"\t");
            }
            System.out.println();
        }
        System.out.println("==============");
    }
}
